<!-- 登录页 -->
<template>
  <el-container style="height:100vh;background-image:linear-gradient(135deg,#1352f2,#3c82f5);overflow: hidden;">
    <el-header style="padding: 30px;">
      <el-row :gutter="10">
        <el-col :span="3">
          <img src="/imgs/login/logo.png" style="height: 50px;">
        </el-col>
        <el-col :span="1">
          <img src="/imgs/login/auto.png" style="height: 50px;">
        </el-col>
        <el-col :span="1">
          <img src="/imgs/login/verticalLine.png" style="height: 50px;">
        </el-col>
        <el-col :span="19">
          <span style="color:#fff;font-size:30px;font-weight:bold;">智慧车辆运营管理系统</span>
        </el-col>
      </el-row>
    </el-header>
    <!-- 主体内容 -->
    <el-main>
      <el-row :gutter="40">
        <el-col :span="16" :xs="24" :sm="24" :md="16" :lg="16" :xl="16">
          <img src="/imgs/login/bg.png" style="width:100%;margin-top: 60px;">
        </el-col>
        <el-col :span="8" :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
          <el-card style="margin-top: 80px;">
            <h3 style="text-align: center;">用户登录</h3>
            <el-form label-position="top">
              <el-form-item label="用户名">
                <el-input placeholder="请输入用户名" v-model="user.username"></el-input>
              </el-form-item>
              <el-form-item label="密码">
                <el-input placeholder="请输入密码" show-password v-model="user.password"></el-input>
              </el-form-item>
              <el-form-item>
                <el-button type="primary" style="width: 100%;" @click="login">登录</el-button>
              </el-form-item>
            </el-form>
            <div style="font-size: 14px;color: #666;text-align: center;padding: 15px 0;">
              (体验账号:tom 密码:123456)
            </div>
          </el-card>
        </el-col>
      </el-row>
    </el-main>
  </el-container>
</template>

<script setup>
import {ref} from "vue";
import axios from "axios";
import {ElMessage} from "element-plus";
import router from "@/router";

//定义对象用来保存用户在登录表单输入的数据
const user = ref({username:'',password:''});
//定义点击登录按钮时调用的登录方法
const login = () => {
  console.log(user.value);
  /* 前端需要使用axios给后端发送请求,并接收到后端返回的响应数据 */
  //1.axios使用必须安装并导入!
  //2.前端的请求方式必须与后端注解一致!
  //3.默认的请求方式:get的参数在路径上拼接 post的参数在请求主体里
  axios.post(BASE_URL+'/v1/user/login', user.value)
      .then((response) => {
        //4.回调函数:用来处理后端返回的响应数据
        //5.response.data:后端返回的响应数据,也就是后端返回的JsonResult
        //console.log(response.data);
        //6.判断登录是否成功,根据不同的状态码给出不同的处理
        if(response.data.code == 2000){
          ElMessage.success('登录成功!');
          /* localStorage存储的是字符串类型的键值对 */
          /* JSON.stringify(参数) 将参数转为JSON格式的字符串 */
          //console.log(response.data.data);
          //console.log(JSON.stringify(response.data.data));
          localStorage.setItem('user',JSON.stringify(response.data.data))
          //登录成功后会跳转至首页,router/index.js配置了会重定向到/user用户列表页
          router.push('/');
        }else if(response.data.code == 3001){
          ElMessage.error(response.data.data);
        }else{
          ElMessage.error(response.data.message);
          user.value ={username:'',password:''};
        }
      })
}

</script>

<style scoped>

</style>